脚本化规则

在此部分:

关于脚本化规则

脚本规则允许使用 Windows PowerShell 或 VB 脚本创建自定义规则。 脚本的成功或失败决定了作为规则一部分的“安全级别”、“允许的项目”和“拒绝的项目”是否适用于用户。

脚本化规则可利用任何通过 PowerShell 或 VBScript 访问的接口,例如 COM(组件对象模型)。

在以下环境下对每个脚本进行评估:

  • 将新配置部署到计算机时。
  • 用户登录时。

要创建或编辑脚本,请转至 应用程序控件 配置编辑器所需的脚本化规则集。 规则集 > 脚本化 > [Rule Set name]

您可以使用以下脚本规则选项来定义脚本何时运行:

  • 运行脚本
    • 每个会话以用户身份 - 对于登录的每名用户,脚本均会运行。 设置仅适用于用户会话的时间。
    • 每个会话以系统身份 - 对于登录的每名用户,脚本均会使用系统帐户权限运行。 设置仅适用于用户会话的时间。
    • 每台计算机以系统身份 - 脚本在计算机启动时使用系统帐户权限运行一次。 设置适用于所有用户会话,直到计算机重新启动、应用程序控件 代理重新启动或配置发生更改为止。

    注意:作为系统用户运行脚本可能会对计算机造成严重损坏,只能由有经验的脚本作者启用。

  • 等待登录以完成 - 选择此项,阻止脚本在用户登录完成前运行。

VBScripts

每个脚本都在托管脚本引擎中运行,允许对脚本执行进行更有效的控制,同时提供高度的输入和输出控制。

  • 不使用 VBS 文件。
  • 没有生成单独的进程。

脚本必须作为函数编写,并且可以包含许多函数,但是必须指定一个主启动函数。 启动函数由 应用程序控件 代理运行,可用于调用其他函数。

AMScriptRule COM 对象内置在脚本引擎中,并提供对以下方法的访问:

  • strUsername = AMScriptRule.UserName
  • strUserdomain = AMScriptRule.UserDomain
  • strSessionid = AMScriptRule.SessionID
  • strStationname = AMScriptRule.WinStation

    此实例中的 Microsoft standard 表示 WinStation 返回终端服务会话名称的值,其由会话的类型决定,典型值是 ’Console’ 或 ’RDP-Tcp#34’,而不是窗口站的名称(通常为 WinSta0)。

AMScriptRule COM 对象还包括以下方法:

  • strLog = AMScriptRule.Log "My Log Statement"

    允许您将记录字符串输出到代理日志文件中,以用于调试脚本规则。

  • strEnvironmentvar = AMScriptRule.ExpandEnvironment ("%MyEnvironmentVariables%")

    展开运行脚本的用户的环境变量。

使用 WScript. shell 展开环境变量仅返回 SYSTEM 变量。

Windows PowerShell 脚本

如果脚本以值 0 返回(退出),则脚本将通过并且应用规则。 如果返回任何非零值,则脚本将失败并且不应用规则。

每个 PowerShell 脚本都在 PowerShell.exe 的实例中执行,因此 应用程序控件 既不强制执行也不添加任何特定语法,所有格式正确的 PowerShell 都将正常工作。

PowerShell 必须安装在任何将使用脚本的端点上。

示例脚本

相关主题

规则集

规则集合